The present disclosure relates generally to displaying three-dimensional (3D) views, and more specifically to determining which parts of a 3D map to retrieve from a server based on a current position of a virtual camera that provides the view of the 3D map.
Whether part of a video game or viewing a geographic map of the real world, it is useful for a user to control a view being displayed on a screen (e.g., via a touch screen or buttons). This visualization of a map allows a user to look at a map of a particular city, neighborhood, part of a national park, a mountain range, or a map of a virtual world, which can include interiors as well. To render the view of a map, a virtual position of the eye of the user (also called a virtual camera herein) is used to determine which part of the map is displayed.
Typically, a map is defined as a set of tiles. For a computer to display the desired view, a processor needs the viewable tiles for a particular position of the virtual camera, and then the processor can render an image. The computer thus needs to determine which tiles of the map are needed to display the image.
When the map is flat (e.g. just a relief map with contour lines), the part of the map that needs to be displayed can be determined relatively easily. However, when the map is a 3D map (a raised-relief map) issues arise since what is being viewed affects what the camera can see. Thus, one cannot definitely determine exactly what can be seen until the actual map is obtained.
A typical method retrieves any of the map tiles within a large perimeter around the virtual camera, e.g., everything forward from the camera to a maximum possible distance that might be seen. Such a method is fine when local storage is very large or when the bandwidth to retrieve tiles from storage is high so that the tiles can be retrieved very quickly with little cost. However, for devices with a relatively small amount of memory and limited bandwidth (e.g. a mobile device), such a technique is prohibitive.
Therefore, it is desirable to provide methods and systems for displaying an image of a raised-relief map that is suitable for devices with limited memory and network bandwidth.